home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Aztec C v5.2a disk 4.adf / 204inc_h.lzh / utility / tagitem.h < prev   
C/C++ Source or Header  |  1991-03-14  |  2KB  |  58 lines

  1. #ifndef UTILITY_TAGITEM_H
  2. #define UTILITY_TAGITEM_H TRUE
  3. /*
  4. **    $Filename: utility/tagitem.h $
  5. **    $Release: 2.04 $
  6. **    $Revision: 36.1 $
  7. **    $Date: 90/07/12 $
  8. **
  9. **    extended specification mechanism
  10. **
  11. **    (C) Copyright 1989,1990 Commodore-Amiga Inc.
  12. **        All Rights Reserved
  13. */
  14.  
  15. #ifndef EXEC_TYPES_H
  16. #include <exec/types.h>
  17. #endif
  18.  
  19. /* ======================================================================= */
  20. /* ====    TagItem    ========================================================== */
  21. /* ======================================================================= */
  22. /* This data type may propagate through the system for more general use.
  23.  * In the meantime, it is used as a general mechanism of extensible data
  24.  * arrays for parameter specification and property inquiry (coming soon
  25.  * to a display controller near you).
  26.  *
  27.  * In practice, an array (or chain of arrays) of TagItems is used.
  28.  */
  29.  
  30. typedef ULONG    Tag;
  31.  
  32. struct TagItem    {
  33.     Tag        ti_Tag;
  34.     ULONG    ti_Data;
  35. };
  36.  
  37. /* ----    system tag values -----------------------------    */
  38. #define TAG_DONE   (0L)    /* terminates array of TagItems. ti_Data unused    */
  39. #define TAG_END    TAG_DONE
  40. #define    TAG_IGNORE (1L)    /* ignore this item, not end of array        */
  41. #define    TAG_MORE   (2L)    /* ti_Data is pointer to another array of TagItems
  42.              * note that this tag terminates the current array
  43.              */
  44. #define    TAG_SKIP   (3L)    /* skip this and the next ti_Data items        */
  45.  
  46. /* ----    user tag identification -----------------------    */
  47. #define TAG_USER  (1L<<31)    /* differentiates user tags from system tags*/
  48.  
  49. /* until further notice, tag bits 16-30 are RESERVED and should be zero.
  50.  * Also, the value (TAG_USER | 0) should never be used as a tag value.
  51.  */
  52.  
  53. /* ---- Tag filter logic specifiers ---- */
  54. #define TAGFILTER_AND    0    /* exclude everything but filter hits    */
  55. #define TAGFILTER_NOT    1    /* exclude only filter hits        */
  56.  
  57. #endif
  58.